package com.changdu.seatunnel.admin.service;

import java.util.List;

import com.changdu.seatunnel.admin.entity.DataInstance;
import com.changdu.seatunnel.admin.pojo.TableField;

public interface DataSourceService {
    
    /**
     * 获取数据源实例列表
     * @param dataCenter 数据中心
     * @return 实例列表
     */
    List<String> getInstances(String dataCenter);
    
    /**
     * 获取数据库列表
     * @param dataCenter 数据中心
     * @param instance 实例名称
     * @return 数据库列表
     */
    List<String> getDatabases(String dataCenter, String instance);
    
    /**
     * 获取表列表
     * @param dataCenter 数据中心
     * @param instance 实例名称
     * @param database 数据库名称
     * @return 表列表
     */
    List<String> getTables(String dataCenter, String instance, String database);
    
    /**
     * 获取表结构
     * @param dataCenter 数据中心
     * @param instance 实例名称
     * @param database 数据库名称
     * @param table 表名称
     * @return 表结构信息
     */
    List<TableField> getTableStructure(String dataCenter, String instance, String database, String table);

    /**
     * 获取实例信息
     * @param dataCenter
     * @param dbType
     * @return
     */
	DataInstance selectByDcCodeAndInstance(String dataCenter, String instance);

	/**
	 * 清空缓存
	 */
	default void cleanCached() {};
    
} 